<?php

namespace SisesporteAdmin\Form;

use Zend\Form\Form;
use SisesporteAdmin\Filter\ModalidadeFilter;
use \Zend\Form\Element\Radio;

class ModalidadeForm extends Form {

    protected $entity;

    public function __construct($entity = NULL) {
        parent::__construct('modalidade');
        $this->entity = $entity;

        $this->setAttribute('method', 'post');
        $this->setInputFilter(new ModalidadeFilter());

        $this->add(array(
            'name' => 'sqModalidade',
            'attibutes' => array(
                'type' => 'hidden'
            )
        ));

        $this->add(array(
            'name' => 'stAtivo',
            'attibutes' => array(
                'type' => 'hidden',
            )
        ));

        $this->add(array(
            'name' => 'sgModalidade',
            'options' => array(
                'type' => 'text',
                'label' => 'Código: *'
            ),
            'attributes' => array(
                'id' => 'sgModalidade',
                'placeholder' => 'Entre com o código da modalidade'
            )
        ));

        $this->add(array(
            'name' => 'noModalidade',
            'options' => array(
                'type' => 'text',
                'label' => 'Nome da Modalidade: '
            ),
            'attributes' => array(
                'id' => 'noModalidade',
                'placeholder' => 'Entre com a Modalidade',
                'class' => 'input-xxlarge'
            )
        ));

        $teste = new Radio('inNecessitaTeste');
        $teste->setLabel("Necessita Teste?*")
                ->setName('inNecessitaTeste')
                ->setValueOptions(array(
                    true => 'Sim',
                    false => 'Não',
                        )
        );
        $this->add($teste);

//        $this->add(array(
//           'name' => 'inNecessitaTeste',
//            'type' => 'Zend\Form\Element\Checkbox',
//            'options' => array(
//                'type' => 'boolean',
//                'checked_value' => 'true',
//                'unchecked_value' => 'false',
//                'label' => 'Necessita Teste'
//            ),
//            'attributes' => array(
//                'id' => 'inNecessitaTeste',
//                'placeholder' => 'Modalidade necessita de teste?'
//            )
//        ));

        $this->add(array(
            'name' => 'txPreRequisito',
            'options' => array(
                'type' => 'text',
                'label' => 'Pré Requisito'
            ),
            'attributes' => array(
                'id' => 'txPreRequisito',
                'placeholder' => 'Entre com o pré requisito da modalidade'
            )
        ));

        $this->add(array(
            'name' => 'submit',
            'type' => 'Zend\Form\Element\Submit',
            'attributes' => array(
                'value' => 'Salvar',
                'class' => 'btn btn-primary'
            )
        ));

        $this->add(array(
            'type' => 'Zend\Form\Element\Select',
            'name' => 'noLocalidade',
            'options' => array(
                'label' => 'Localidade:',
                'empty_option' => '-- Selecione --',
                'value_options' => $this->getResultArray('Sisesporte\Entity\Localidade'),
            ),
            'attributes' => array(
                'id' => 'noLocalidade',
                'class' => 'input-xlarge'
            )
        ));
    }

    protected function getResultArray($repository) {
        $repo = $this->entity->getRepository($repository);
        return $repo->fetchPairs();
    }

    public function setDefaultsFromEntity($obj) {

        $repoA = $this->entity->getRepository("Sisesporte\Entity\LocalModalidade");
        $entityLocalModalidade = $repoA->findby(array('sqModalidade' => $obj->getSqModalidade()), NULL);
        
      $this->setData(array(
            'noModalidade' => $obj->getNoModalidade(),
            'sgModalidade' => $obj->getSgModalidade(),
            'inNecessitaTeste' => $obj->getInNecessitaTeste(),
            'txPreRequisito' => $obj->getTxPreRequisito(),
            'noLocalidade' => $entityLocalModalidade[0]->getSqLocalidade()->getSqLocalidade(),
        ));
    }

}
